#include<bits/stdc++.h>
using namespace std;
int n,a[200001],b[200001],c[200001],r,g;
int dfs(int x){
if(c[x])return c[x];
if(b[x])return c[x]=x;
b[x]=1;
return c[x]=dfs(a[x]);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)dfs(i);
for(int i=1;i<=n;i++)if(a[i]==i&&c[i]==i)r=i;
if(!r){
for(int i=1;i<=n;i++){
if(c[i]!=i)continue;
g++;
a[i]=r=i;
break;
}
}
for(int i=1;i<=n;i++)if(c[i]==i)g++,a[i]=r;
cout<<g-1<<endl;
for(int i=1;i<=n;i++)cout<<a[i]<<' ';
return 0;
}
489A - SwapSort | 932A - Palindromic Supersequence |
433A - Kitahara Haruki's Gift | 672A - Summer Camp |
1277A - Happy Birthday Polycarp | 577A - Multiplication Table |
817C - Really Big Numbers | 1355A - Sequence with Digits |
977B - Two-gram | 993A - Two Squares |
1659D - Reverse Sort Sum | 1659A - Red Versus Blue |
1659B - Bit Flipping | 1480B - The Great Hero |
1519B - The Cake Is a Lie | 1659C - Line Empire |
515A - Drazil and Date | 1084B - Kvass and the Fair Nut |
1101A - Minimum Integer | 985D - Sand Fortress |
1279A - New Year Garland | 1279B - Verse For Santa |
202A - LLPS | 978A - Remove Duplicates |
1304A - Two Rabbits | 225A - Dice Tower |
1660D - Maximum Product Strikes Back | 1513A - Array and Peaks |
1251B - Binary Palindromes | 768B - Code For 1 |